//所有的网络请求在这里统一封装，统一管理
let token;

function call(option) {//option是传过来的对象
	return new Promise((resolve, reject) => {
		//如果对象中data没有参数传过来的，那么把它置为一个空对象
		if (!option.data) option.data = {};
		//先把token清了,设为undefined
		if (token) option.data.token = token;
		//加载
		uni.showLoading();
		//调云函数，发起请求
		uniCloud.callFunction({
			name: option.name,
			data: option.data,
			success: (res) => {
				if (res.result.token)token = res.result.token;
				if(option.success) option.success(res);
				resolve(res);
			},
			fail: (err) => {
				if(option.fail) option.fail(err);
				reject();
			},
			complete: () => {
				//隐藏加载信息
				uni.hideLoading();
				if(option.complete) option.complete();
			}
		})

	})
}

module.exports = {
	call:call
}
